package com.whfc.fmam.dao;

import com.whfc.fmam.entity.bo.FmamWarehouse;
import com.whfc.fmam.entity.dto.FmamWarehouseDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface FmamWarehouseMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(FmamWarehouse record);

    int insertSelective(FmamWarehouse record);

    FmamWarehouse selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(FmamWarehouse record);

    int updateByPrimaryKey(FmamWarehouse record);

    /**
     * 查询同步仓库列表
     *
     * @param deptId
     * @param lastSyncTime
     * @return
     */
    List<FmamWarehouse> selectSyncWarehouseList(@Param("deptId") Integer deptId, @Param("lastSyncTime") Date lastSyncTime);

    /**
     * 根据组织机构查询仓库列表
     *
     * @param deptId
     * @return
     */
    List<FmamWarehouseDTO> selectFmamWarehouseByDeptId(@Param("deptId") Integer deptId);

    /**
     * 通过编码查询
     *
     * @param deptId
     * @param code
     */
    FmamWarehouse selectByDeptIdAndCode(@Param("deptId") Integer deptId, @Param("code") String code);

    /**
     * 启用
     *
     * @param id
     */
    int updateEnableById(@Param("id") Integer id);

    /**
     * 禁用
     *
     * @param id
     */
    int updateDisableById(@Param("id") Integer id);

    /**
     * 逻辑删除
     *
     * @param id
     */
    int deleteLogicById(@Param("id") Integer id);

    /**
     * 获取随机仓库
     *
     * @param deptId
     * @return
     */
    FmamWarehouse getRandomWareHouse(@Param("deptId") Integer deptId);

}